﻿#define _CRT_SECURE_NO_WARNINGS 1
//算数转化
//#include <stdio.h>
//int i;
//int main()
//{
//    i--;
//    if (i > sizeof(i))
//    {
//        printf(">\n");
//    }
//    else
//    {
//        printf("<\n");
//    }
//    return 0;
//}





//第一题
//#include <stdio.h>
//int main()
//{
//    int a = 0;
//    int b = 0;
//    scanf("%d %d\n", a, b);
//    int arr1[100];
//    int i = 0;
//    for (i = 0; i < a; i++)
//    {
//        scanf("%d", arr1 + i);//地址
//    }
//    printf("\n");
//    int arr2[100];
//    for (i= 0; i < b; i++)
//    {
//        scanf("%d", arr2 + i);//地址
//    }
//    printf("\n");
//    int arr3[200];//先全部放到arr3里不管顺序
//    for (i= 0; i< a + b; i++)
//    {
//        if (i< a)
//            arr3[i] = arr1[i];
//        else//i>a
//            arr3[i] = arr2[i- a];
//    }
//    //排序arr3
//    int tmp=0;
//    int k = 0;
//    for (k = 0; k < a + b; k++)
//    {
//        if (arr3[k] > arr3[k + 1])
//        {
//            tmp = arr3[k + 1];
//            arr3[k + 1] = arr3[k];
//            arr3[k] = tmp;
//        }
//    }
//    //打印
//    for (i = 0; i < a + b; i++)
//    {
//        printf("%d", arr3[i]);
//    }
//    return 0;
//}




//#include<stdio.h>
//#include<stdlib.h>
//int main()
//{
	//int a, b;
	//scanf("%d %d", &a, &b);
	//int* p1 = (int*)malloc(a * sizeof(int));
	//int* p2 = (int*)malloc(b * sizeof(int));
	//int i;
	//for (i = 0; i < a; i++)
	//{
	//	p1[i] = scanf("%d", p1 + i);
	//}
	//for (i = 0; i < b; i++)
	//{
	//	p2[i] = scanf("%d", p2 + i);
	//}
	//
	////合并p2和p3
	//int* p3 = (int*)malloc((a + b) * sizeof(int));
	//for (i = 0; i < a + b; i++)
	//{
	//	if (i < a)
	//		p3[i] = p1[i];
	//	else
	//		p3[i] = p2[i - a];
	//}

//	int a, b;
//	scanf("%d %d", &a, &b);
//	int p1[100] = { 0 };
//	int p2[100] = { 0 };
//	int i;
//	for (i = 0; i < a; i++)
//	{
//		scanf("%d", p1 + i);
//	}
//	for (i = 0; i < b; i++)
//	{
//		scanf("%d", p2 + i);
//	}
//	int p3[200] = { 0 };
//	for (i = 0; i < a + b; i++)
//	{
//		if (i < a)
//			p3[i] = p1[i];
//		else
//			p3[i] = p2[i - a];
//	}
//
//
//	//冒泡排序
//	for (i = 0; i < a + b; i++)
//	{
//		int j = 0;
//		for (j = 0; j < a + b - 1 - i; j++)
//		{
//			if (p3[j] > p3[j + 1])
//			{
//				int tmp = p3[j];
//				p3[j] = p3[j + 1];
//				p3[j + 1] = tmp;
//			}
//		}
//	}
//
//	//打印
//	for (i = 0; i < a + b; i++)
//	{
//		printf("%d ", p3[i]);
//	}
//
//	return 0;
//}
	//冒泡不会❌

    //#include <stdio.h>
    //int main()
    //{
    //    int a = 0;
    //    int b = 0;
    //    scanf("%d %d\n", a, b);
    //    int arr1[100] = { 0 };
    //    int i;
    //    for (i = 0; i < a; i++)
    //    {
    //        scanf("%d", arr1 + i);//地址
    //    }
    //    printf("\n");
    //    int arr2[100] = { 0 };
    //    for (i = 0; i < b; i++)
    //    {
    //        scanf("%d", arr2 + i);//地址
    //    }
    //    printf("\n");
    //    int arr3[200] = { 0 };//先全部放到arr3里不管顺序
    //    for (i = 0; i < a + b; i++)
    //    {
    //        if (i < a)
    //            arr3[i] = arr1[i];
    //        else//i>a
    //            arr3[i] = arr2[i - a];
    //    }
    //    //排序arr3
    //    int tmp = 0;
    //    for (i = 0; i < a + b; i++)
    //    {
    //        int j = 0;
    //        for (j = 0; j < a + b - 1 - i; j++)
    //        {
    //            if (arr3[i] > arr3[i + 1])
    //            {
    //                tmp = arr3[i + 1];
    //                arr3[i + 1] = arr3[i];
    //                arr3[i] = tmp;
    //            }
    //        }
    //    }
    //    //打印
    //    for (i = 0; i < a + b; i++)
    //    {
    //        printf("%d", arr3[i]);
    //    }
    //    return 0;
    //}


//第二题
//#include <stdio.h>
//int main()
//{
//    int a = 0;
//    int b = 0;
//    int count = 0;
//    int d[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };
//    while (~scanf("%d %d", &a, &b))
//    {
//        count = d[b - 1];
//        if (a % 400 == 0 || a % 4 == 0 && a % 100 != 0)
//        {
//            if (b == 2)
//                count++;
//        }
//        printf("%d\n", count);
//    }
//    return 0;
//}




//第三题
//#include <stdio.h>
//int main()
//{
//    int i;
//    for (i = 10000; i <= 100000; i++)\
//    {
//        if (i == ((i / 10000) * (i % 10000)) + ((i / 1000) * (i % 1000)) + ((i / 100) * (i % 100)) + ((i / 10) * (i % 10)))
//            printf("%d ", i);
//    }
//    return 0;
//}


//修改之后的算数转化题型
//题目1
//有序序列合并
// 方法1
//#include<stdio.h>
//int main()
//{
//    int arr1[m];
//    int arr2[n];
//    //放数据到数组里
//    int m = 0;
//    int n = 0;
//    int i = 0;
//    scanf("%d %d", &m, &n);
//    for (i = 0; i < m; i++)//数组下标从0开始
//    {
//        scanf("%d", arr1[i]);
//    }
//    for (i = 0; i < n; i++)
//    {
//        scanf("%d", arr2[i]);
//    }
//    //数据全部放到第三个数组里
//    int arr3[m + n];
//    for (i = 0; i < m; i++)
//    {
//        arr3[i] = arr1[i];
//    }
//    for (i = 0; i < n; i++)
//    {
//        arr3[m + 1] = arr2[i];
//    }
//    //冒泡排序
//    int sz = sizeof(arr3) / sizeof(arr3[0]);
//    for (i = 0; i < sz; i++)
//    {
//        int j = 0;
//        for (j = 0; j < sz - i - 1; j++)
//        {
//            if (arr3[j] > arr3[j + 1])
//            {
//                int tmp = 0;
//                tmp = arr3[j];
//                arr3[j] = arr3[j + 1];
//                arr3[j + 1] = tmp;
//            }
//        }
//    }
//    for (i = 0; i < sz; i++)
//    {
//        printf("%d ", arr3[i]);
//    }
//    return 0;
//}
//
//
//int arr3[m + n];
//for (i = 0; i < m; i++)
//{
//    arr3[i] = arr1[i];
//}
//for (i = 0; i < n; i++)
//{
//    arr3[m + 1] = arr2[i];
//}
//
//#include<stdio.h>
//int main()
//{
//    //放数据到数组里
//    int m = 0;
//    int n = 0;
//    int i = 0;
//    scanf("%d %d", &m, &n);
//    int arr1[m];
//    int arr2[n];
//    int arr3[m + n];
//    for (i = 0; i < m; i++)//数组下标从0开始
//    {
//        scanf("%d", arr1[i]);
//    }
//    for (i = 0; i < n; i++)
//    {
//        scanf("%d", arr2[i]);
//    }
//    //数据全部放到第三个数组里
//    for (i = 0; i < m + n; i++)
//    {
//        if (i < m)
//            arr3[i] = arr1[i];
//        else//i>m
//            arr3[i] = arr2[i - m];
//    }
//    //冒泡排序
//    //m+n是arr3里放置的1元素多少，sizeof计算的是arr3全部的大小
//    for (i = 0; i < m + n; i++)
//    {
//        int j = 0;
//        for (j = 0; j < m + n - i - 1; j++)
//        {
//            if (arr3[j] > arr3[j + 1])
//            {
//                int tmp = 0;
//                tmp = arr3[j];
//                arr3[j] = arr3[j + 1];
//                arr3[j + 1] = tmp;
//            }
//        }
//    }
//    for (i = 0; i < m + n; i++)
//    {
//        printf("%d ", arr3[i]);
//    }
//    return 0;
//}


////
////修改之后的算数转化题型
////题目1
////有序序列合并
////方法2
//方法2
//需要变长数组
// 
// 
// 
//#include<stdio.h>
//int main()
//{
//    int n;
//    int m;
//    scanf("%d %d", &n, &m);
//    int arr1[n];
//    int arr2[m];
//    int arr3[m + n];
//    //放数据到数组里
//    int i = 0;
//    for (i = 0; i < n; i++)//数组下标从0开始
//    {
//        scanf("%d", &arr1[i]);
//    }
//    for (i = 0; i < m; i++)
//    {
//        scanf("%d", &arr2[i]);
//    }
//    //一边放元素一边调整顺序
// /*   for (i = 0; i < m + n; i++)
//    {
//        if (arr1[i] < arr2[i])
//            arr3[i] = arr1[i];
//        else
//            arr3[i] = arr2[i];
//    }*/
//    //for循环是一对一对的比较，而我们需要的是一个数一个数比较，小的放到arr3，大的留下继续比较，需要两个变量
//    i = 0;//i调整arr1
//    int j = 0;//调整arr2
//    int k = 0;//调整arr3
//    while (i < n && j < m)//一直循环直到把arr1或者arr2里面的元素放置完毕
//    {
//        if (arr1[i] < arr2[j])
//        {
//            arr3[k] = arr1[i];//放i的元素到arr3里面
//            i++;//arr1元素需要移动一位
//            k++;//arr3元素需要移动一位
//        }
//        else//>
//        {
//            arr3[k] = arr2[j];
//            j++;
//            k++;
//        }
//    }
//    //如果剩余arr1
//    if (j == m)//arr2用完
//    {
//        while (i < n)//条件限制
//            arr3[k++] = arr1[i++];
//    }
//    else//(i == n)
//    {
//        while (j < m)//条件限制
//            arr3[k++] = arr2[j++];
//    }
//    for (i = 0; i < m + n; i++)
//    {
//        printf("%d ", arr3[i]);
//    }
//    return 0;
//}
//
//
////不用变长数组
//int arr1[1000]
//int arr2[1000]
//int arr3[1000]
//
//
//
//
////题目并没有要求创建数组arr3
////不创建arr3
//while (i < n && j < m)//一直循环直到把arr1或者arr2里面的元素放置完毕
//{
//    if (arr1[i] < arr2[j])
//    {
//        printf("%d ", arr1[i++]);
//    }
//    else//>
//    {
//        printf("%d ", arr2[j++]);
//    }
//}
////如果剩余arr1
//if (j == m)//arr2用完
//{
//    while (i < n)//条件限制
//        printf("%d ", arr1[i++]);
//}
//else//(i == n)
//{
//    while (j < m)//条件限制
//        printf("%d ", arr2[j++]);
//}





//第二题
//方法1
//#include<stdio.h>
//int is_leap_year(int y)//判断闰年
//{
//    if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
//        return 1;//闰年
//    else
//        return 0;//平年
//}
//int main()
//{
//    int y = 0;
//    int mouth = 0;
//    int m[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };//平年
//    int n[12] = { 31,29,31,30,31,30,31,31,30,31,30,31 };//闰年
//    int ret = is_leap_year(y);
//    while (scanf("%d %d", &y, &mouth) != EOF)
//    {
//        if (ret == 1)
//        {
//            int k = m[mouth];
//            printf("%d", k);
//        }
//        else
//        {
//            int d = n[mouth];
//            printf("%d", d);
//        }
//    }
//    return 0;
//
//}



//方法2
//#include<stdio.h>
//int is_leap_year(int y)//判断闰年
//{
//    if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
//        return 1;//闰年
//    else
//        return 0;//平年
//}
//int main()
//{
//    int y = 0;
//    int mouth = 0;
//    int m[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };//平年
//    //int ret = is_leap_year(y);
//    while (scanf("%d %d", &y, &mouth) != EOF)
//    {
//        int day = m[mouth];
//        //if (ret = 1 && mouth == 2)
//        if(is_leap_year(y)&&mouth ==2)
//        {
//            day++;
//        }//打印闰年的数组
//        printf("%d", day);
//    }
//    return 0;
//
//}

////方法3
//#include<stdio.h>
//int is_leap_year(int y)//判断闰年
//{
//    if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0))
//        return 1;//闰年
//    else
//        return 0;//平年
//}
//int main()
//{
//    int year = 0;
//    int mouth = 0;
//    int m[12] = { 31,28,31,30,31,30,31,31,30,31,30,31 };//平年
//    //int ret = is_leap_year(y);
//    while (scanf("%d %d", &year, &mouth) != EOF)
//    {
//        int day = 0;
//        switch (mouth)
//        {
//        case 1:
//        case 3:
//        case 5:
//        case 7:
//        case 8:
//        case 10:
//        case 12:
//            day = 31;
//            break;
//        case 4:
//        case 6:
//        case 9:
//        case 11:
//            day = 30;
//            break;
//        case 2:
//            day = 28;
//        }
//        //if (ret = 1 && mouth == 2)
//        if (is_leap_year(year) && mouth == 2)
//        {
//            day++;
//        }//打印闰年的数组
//        printf("%d", day);
//    }
//    return 0;
//
//}



//题目3
//水仙花
//12345
//12345/10=1234 12345%10=5  1234和5
//12345/100=123 12345%100=45  123和45
//12345/1000=12  12345%1000=345 12和345
//12345/10000=1   12345%10000=2345 1和2345
//关于/和%
//#include<stdio.h>
//#include<math.h>
//int main()
//{
//    int i = 0;
//    for (i = 10000; i <= 99999; i++)//10000~99999
//    {
//       //判断i是否是Lily number
//        int j = 0;
//        int ret = 0;
//        for (j = 1;j<=4;j++)//次方
//        {
//            ret = ret + (i /(int) pow (10, j)) * (i %(int) pow(10, j));//整数_数据类型的转化_不能出现小数
//        }
//        if (ret == i)
//        {
//            printf("%d ", i);
//        }
//
//    }
//}
